package cn.tedu.micro.demo.es.dao;

import cn.tedu.micro.demo.es.po.StudentEsPO;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.data.geo.Distance;

import java.util.Date;
import java.util.List;

/**
 * 专用来连接es操作学生po对应的数据对象
 * DOC 泛型 就是我们封装PO类型 StudentEsPO
 * I 文档对象 es中业务对象的主键
 */
public interface StudentEsRepository extends ElasticsearchRepository<StudentEsPO,String> {
    //根据姓名查询
    List<StudentEsPO> findByName(String name);
    //根据名称或年龄查询
    List<StudentEsPO> findByNameOrAge(String name,Integer age);
    //根据名称或者年龄小于范围查询
    List<StudentEsPO> findByNameOrAgeLessThan(String name,Integer age);
    //根据id数组查询
    List<StudentEsPO> findByIdIn(List<String> ids);
    //给一个起始时间 一个结束时间
    List<StudentEsPO> findByBirthdayBetween(Date start, Date end);
    //根据生日查询使用年龄排序
    List<StudentEsPO> findByBirthdayBetweenOrderByAgeDesc(Date start, Date end);
    //profile 字段模糊查询
    List<StudentEsPO> findByProfileLike(String profile);
    //name模糊查询
    List<StudentEsPO> findByNameLike(String name);
}
